---
title: "Grafana Provider"
description: "Grafana Provider allows either pull/push alerts and pull Topology Map from Grafana to Keep."
---
<Tip>Grafana currently supports pulling/pushing alerts & Topology Map. We will add querying and notifying soon.</Tip>

## Legacy vs Unified Alerting

Keep supports both Grafana's legacy alerting system and the newer Unified Alerting system. Here are the key differences:

### Legacy Alerting
- Uses notification channels for alert delivery
- Configured at the dashboard level
- Uses a different API endpoint (`/api/alerts` and `/api/alert-notifications`)
- Simpler setup but fewer features
- Alerts are tightly coupled with dashboard panels

### Unified Alerting (Default from Grafana 9.0)
- Uses alert rules and contact points
- Configured centrally in the Alerting section
- Uses the newer `/api/v1/alerts` endpoint
- More powerful features including label-based routing
- Supports multiple data sources in a single alert rule

<Note>
If you're using Grafana 8.x or earlier, or have explicitly enabled legacy alerting in newer versions, make sure to configure Keep accordingly using the legacy alerting configuration.
</Note>

## Inputs

Grafana Provider does not currently support the `notify` function.

## Outputs

Grafana Provider does not currently support the `query` function.

## Authentication Parameters

The Grafana Provider uses API token authentication. You need to provide the following authentication parameters to connect to Grafana:

- **token** (required): Your Grafana API Token.
- **host** (required): The URL of your Grafana host (e.g., https://keephq.grafana.net).

## Connecting with the Provider

To connect to Grafana, you need to create an API Token:

1. Log in to your Grafana account.
2. Go to the **Service Accounts** page (cmd+k -> service).
3. Click the **Add service account** button and provide a name for your service account.
4. Grant "alerting" permissions:

<Frame
    width="100"
  height="200">
  <img height="10" src="/images/grafana_sa.png" />
</Frame>

5. Now generate Service Account Token:

<Frame
    width="100"
  height="200">
  <img height="10" src="/images/grafana_sa_2.png" />
</Frame>
6. Use the token value in the `authentication` section in the Grafana Provider configuration.

## Post Installation Validation

You can check that the Grafana Provider works by testing Keep's contact point (which was installed via the webhook integration).

1. Go to **Contact Points** (cmd k -> contact).
2. Find the **keep-grafana-webhook-integration**:

<Frame
    width="100"
  height="200">
  <img height="10" src="/images/grafana_sa_3.png" />
</Frame>
3. Click on the **View contact point**:

<Frame
    width="100"
  height="200">
  <img height="10" src="/images/grafana_sa_4.png" />
</Frame>
4. Click on **Test**:

<Frame
    width="100"
  height="200">
  <img height="10" src="/images/grafana_sa_5.png" />
</Frame>
5. Go to Keep – you should see an alert from Grafana!

**Alternative Validation Methods (When Keep is Not Accessible Externally):**

If Keep is not accessible externally and the webhook cannot be created, you can manually validate the Grafana provider setup using the following methods:

1. **Manual Test Alerts in Grafana:**
   - Create a manual test alert in Grafana.
   - Set up a contact point within Grafana that would normally send alerts to Keep.
   - Trigger the alert and check Grafana's logs for errors or confirmation that the alert was sent.

2. **Check Logs in Grafana:**
   - Access Grafana’s log files or use the **Explore** feature to query logs related to the alerting mechanism.
   - Ensure there are no errors related to the webhook integration and that alerts are processed correctly.

3. **Verify Integration Status:**
   - Navigate to the **Alerting** section in Grafana.
   - Confirm that the integration status shows as active or functioning.
   - Monitor any outbound HTTP requests to verify that Grafana is attempting to communicate with Keep.

4. **Network and Connectivity Check:**
   - Use network monitoring tools to ensure Grafana can reach Keep or any alternative endpoint configured for alerts.

<Note>
**Topology Map** is generated from the traces collect by Tempo.
To get the Datasource UID, go to:
1. Connections > Data Sources.
2. Click the Prometheus instance which is scraping data from Tempo > Your URL is in the format `https://host/connections/datasources/edit/<DATASOURCE_UID>`
3. Copy that DATASOURCE_UID and use it while installing the provider.
</Note>

## Webhook Integration Modifications

The webhook integration adds Keep as a contact point in the Grafana instance. This integration can be located under the "Contact Points" section. Keep also gains access to the following scopes:
- `alert.provisioning:read`
- `alert.provisioning:write`
